package xstring

import (
	"fmt"
	"net"
	"runtime"
)

// 获取设备网卡MAC地址，一般使用此方法来计算设备的唯一标识
func Mac() map[string]string {
	mac := map[string]string{}
	interfaces, err := net.Interfaces()
	if err == nil {
		for _, inter := range interfaces {
			if len(inter.HardwareAddr) > 0 {
				mac[inter.Name] = inter.HardwareAddr.String()
			}
		}
	}
	// 如果获取到的MAC地址为空的话，就直接添加一个系统+架构+未知的MAC网卡地址
	if len(mac) == 0 {
		mac["undefined"] = runtime.GOOS + ":" + runtime.GOARCH + fmt.Sprintf(":cpux%02d", runtime.NumCPU())
	}
	return mac
}
